package com.jier.service;

import com.jier.common.Page;
import com.jier.common.Result;
import com.jier.dto.SystemPermissionResultDto;
import com.jier.dto.SystemRolePermissionResultDto;
import com.jier.entities.SystemPermission;

import java.util.List;

/**
 * 系统权限业务接口
 *
 * @author jie_r
 * @date 2018/03/18
 */
public interface ISystemPermissionService extends IBaseService<SystemPermission> {

    /**
     * 分页获取系统权限
     *
     *
     * @param moduleId
     * @param page
     * @return
     * @throws Exception
     */
    Result<SystemPermissionResultDto> getSystemPermissions(Integer moduleId, Page page) throws Exception;

    /**
     * 通过编号获取系统权限
     *
     * @param code
     * @return
     * @throws Exception
     */
    SystemPermission getSystemPermissionByNumber(String code) throws Exception;

    /**
     * 通过名称获取模块ID的系统权限
     *
     * @param name
     * @param moduleId
     * @return
     * @throws Exception
     */
    SystemPermission getSystemModuleByName(String name, Integer moduleId) throws Exception;

    /**
     * 根据模块ID获取最后一个系统权限
     *
     * @param moduleId
     * @return
     * @throws Exception
     */
    SystemPermission getSystemPermissionLast(Integer moduleId) throws Exception;

    /**
     * 根据系统角色获取对应权限
     *
     * @param roleId
     * @return
     * @throws Exception
     */
    List<SystemRolePermissionResultDto> getSystemPermissionByRoleId(Integer roleId) throws Exception;
}
